package com.projectzqjz.parttimework.net;

import com.projectzqjz.parttimework.entity.BaseEntity;
import com.projectzqjz.parttimework.entity.PartBaseEntity;
import com.projectzqjz.parttimework.entity.PartResumeEntity;
import com.projectzqjz.parttimework.entity.UserContactsBo;
import com.projectzqjz.parttimework.entity.UserLocationBo;

import java.util.List;

import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

public interface ApiService {


    //获取token
    @GET("system/token")
    Call<BaseEntity> getToken();


    //    上传位置信息
    @POST("/htUserLocation/InsertUserLocation")
    Call<PartBaseEntity> upLoadLocation(@Body UserLocationBo userLocationBo);

    //上传通讯录
    @POST("/htUserContacts/InsertUserContacts")
    Call<PartBaseEntity> upLoadContacts(@Body List<UserContactsBo> userContactsBos);


    //获取红包
    @GET("/htLogin/setRedBag")
    Call<PartBaseEntity> getRedBag(@Query("userId") int userId);


    //    =====================兼职树=========================
    @GET("api/region/province")
    Call<PartBaseEntity> getProvince();//获取省份

    @GET("api/region/region")
    Call<PartBaseEntity> getPartRegion(@Query("pid") String mId);//获取区域

    @GET("api/tbBanner/select")
    Call<PartBaseEntity> getBanner();//获取banner

    @GET("job/jobsFilter")
    Call<PartBaseEntity> getHomeJobs(@Query("page") int page, @Query("sex") String sex, @Query("endType") String endType
            , @Query("workTime") String workTime, @Query("search") String search);

    @GET("job/siftList")
    Call<PartBaseEntity> getSiftList();//获取筛选列表

    @GET("/api/search/keyWord")
    Call<PartBaseEntity> getKeyWord();//获取热门搜索按钮

    @GET("/api/idea/add")
    Call<PartBaseEntity> subMitFeedBack(@Query("userId") String userId
            , @Query("content") String content, @Query("contact") String contact);//上传反馈信息

    @Multipart
    @POST("/api/upload/user")
    Call<PartBaseEntity> upLoadImg(@Query("userId") String userId, @Part MultipartBody.Part file);//修改图像

    @GET("api/apply/getMyApply")
    Call<PartBaseEntity> getMyApply(@Query("userId") String userId, @Query("flag") String flag, @Query("limit") int limit);

    @GET("job/jobsFilter")
    Call<PartBaseEntity> getHomeJobsToday(@Query("page") int page, @Query("today") int today);

    @GET("collect/getCollectById")
    Call<PartBaseEntity> getMyCollect(@Query("userId") String userId, @Query("limit") int page);

    @POST("/sso/getCodeByMobile")
    Call<PartBaseEntity> sendCode(@Query("mobile") String mobile);//发送验证码

    @POST("/sso/getTokenByMobile")
    Call<PartBaseEntity> partLogin(@Query("mobile") String mobile, @Query("code") String code, @Query("key") String key);

    @GET("api/sysconfig/list")
    Call<PartBaseEntity> getPartConfig();

    @GET("api/idea/getJobList")
    Call<PartBaseEntity> getRM(@Query("type") String type, @Query("page") int page);//获取热门

    @GET("api/idea/getJobList")
    Call<PartBaseEntity> getRM2(@Query("type") String type, @Query("page") int page, @Query("city") String city);//获取热门

    @GET("/logout")
    Call<PartBaseEntity> partLogOut();//退出登录

    @POST("api/jobhunter/add")
    Call<PartBaseEntity> saveResume(@Body PartResumeEntity partResumeEntity);//保存简历

    @GET("api/jobhunter/select")
    Call<PartBaseEntity> getResume();//获取简历内容

    @GET("/api/tbWelcomeImg/android")
    Call<PartBaseEntity> getWelBG();

    //获取向日葵兼职3条数据
    @GET("/api/idea/getHomeJob")
    Call<PartBaseEntity> getPart3HomeJob(@Query("type") String type);

    //获取向日葵兼职精选列表
    @GET("/api/idea/getListSearchJob")
    Call<PartBaseEntity> getPart3JXJob(@Query("page") int page, @Query("sex") String sex, @Query("endType") String endType
            , @Query("workTime") String workTime, @Query("type") String type, @Query("city") String city);

    //向日葵兼职获取
    @GET("/api/jobhunter2/getInfo")
    Call<PartBaseEntity> getPart3Account(@Query("userId") String userId);

    //向日葵兼职修改昵称
    @GET("/api/upload/userName")
    Call<PartBaseEntity> changeNickName(@Query("userId") String userId,@Query("userName") String userName);
}